package view.componentes;

import java.util.Iterator;
import java.util.Set;
import java.util.SortedSet;
import java.util.TreeSet;

import javax.swing.AbstractListModel;

import model.entidades.Usuario;

public class ListModelProfissionalConvenio extends AbstractListModel<Usuario> {

	private static final long serialVersionUID = 1L;
	
	SortedSet<Usuario> lista;

	public ListModelProfissionalConvenio() {
		lista = new TreeSet<Usuario>();
	}

	public int getSize() {
		return lista.size();
	}

	public Usuario getElementAt(int index) {
		return (Usuario) lista.toArray()[index];
	}

	public void add(Usuario element) {
		if (lista.add(element)) {
			fireContentsChanged(this, 0, getSize());
		}
	}

	public void addAll(Set<Usuario> elements) {
		lista.addAll(elements);
		fireContentsChanged(this, 0, getSize());
	}

	public void clear() {
		lista.clear();
		fireContentsChanged(this, 0, getSize());
	}

	public boolean contains(Usuario element) {
		return lista.contains(element);
	}

	public Usuario firstElement() {
		return lista.first();
	}

	public Iterator<Usuario> iterator() {
		return lista.iterator();
	}

	public Usuario lastElement() {
		return lista.last();
	}

	public boolean removeElement(Usuario element) {
		boolean removed = lista.remove(element);
		if (removed) {
			fireContentsChanged(this, 0, getSize());
		}
		return removed;
	}
	
	/**
	 * @return the lista
	 */
	public Set<Usuario> getLista() {
		return ((Set<Usuario>)lista);
	}
	
}
